#ifndef ZUCGLB_H
#define ZUCGLB_H

#include "config.h"               /* LINELEN */
#include <math.h>                 /* M_PI */
#include "zuc/motion/zucmotcfg.h" /* ZUCMOT_MAX_DIO */
#include "debugflags.h"

#define ZUC_SIM_DISABLED 0
#define ZUC_SIM_ENA_SOFT 1
#define ZUC_SIM_ENA_ON_DEV 2

#ifdef __cplusplus
extern "C" {
#endif

extern char zuc_inifile[LINELEN];

extern char zuc_nmlfile[LINELEN];

#define DEFAULT_RS274NGC_STARTUP_CODE ""
extern char rs274ngc_startup_code[LINELEN];

/* Note: these may be hard-code referenced by the GUI (e.g., zucdebug.tcl).
     If you change the assignments here, make sure and reflect that in
     the GUI scripts that use these. Unfortunately there's no easy way to
     get these into Tk automatically */

// there's also an zuc_Debug function in zuc/usr_intf/zucsh.cc
extern int zuc_debug;

// cabinet type: 1 for cab v1.0, 2 for cab v2.1
extern int zuc_cab_type;

// simulation or run with real device
extern int zuc_sim;

// ZUC_DEBUG_* flag definitions moved to debugflags.h

extern double zuc_task_cycle_time;

extern int zuc_task_interp_max_len;

extern char tool_table_file[LINELEN];

/*just used to keep track of unneccessary debug printing. */
extern int taskplanopen;

extern int zucGetArgs(int argc, char* argv[]);

#ifdef __cplusplus
}; /* matches extern "C" at top */
#endif
#endif /* ZUCGLB_H */
